home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / libblas / symm.z / symm
Encoding:
Text File  |  1998-10-30  |  20.7 KB  |  397 lines

  1.  
  2.  
  3.  
  4. ____SSSSYYYYMMMMMMMM((((3333FFFF))))                                                            ____SSSSYYYYMMMMMMMM((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      dsymm, ssymm, zsymm, csymm - BLAS level three   Symmetric Matrix Product
  10.  
  11.  
  12. FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddssssyyyymmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  14.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo
  15.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  16.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  17.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  18.  
  19.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssssssyyyymmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  20.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo
  21.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  22.            rrrreeeeaaaallll               aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  23.            rrrreeeeaaaallll               aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  24.  
  25.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzssssyyyymmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  26.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo
  27.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  28.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  29.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  30.  
  31.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ccccssssyyyymmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  32.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo
  33.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  34.            ccccoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  35.            ccccoooommmmpppplllleeeexxxx            aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  36.  
  37.  
  38. CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  39.      vvvvooooiiiidddd ddddssssyyyymmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  40.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  41.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  42.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  43.            ddddoooouuuubbbblllleeee                aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  44.            ddddoooouuuubbbblllleeee                ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  45.  
  46.      vvvvooooiiiidddd ssssssssyyyymmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  47.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  48.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  49.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  50.            ffffllllooooaaaatttt                 aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  51.            ffffllllooooaaaatttt                 ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  52.  
  53.      vvvvooooiiiidddd zzzzssssyyyymmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  54.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  55.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  56.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  57.            ZZZZoooommmmpppplllleeeexxxx               aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  58.            ZZZZoooommmmpppplllleeeexxxx               ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____SSSSYYYYMMMMMMMM((((3333FFFF))))                                                            ____SSSSYYYYMMMMMMMM((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      vvvvooooiiiidddd ccccssssyyyymmmmmmmm(((( ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,mmmm,,,,nnnn,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  75.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  76.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  77.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  78.            CCCCoooommmmpppplllleeeexxxx               aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  79.            CCCCoooommmmpppplllleeeexxxx               ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  80.  
  81.  
  82.  
  83. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  84.      ddddssssyyyymmmmmmmm, ssssssssyyyymmmmmmmm, zzzzssssyyyymmmmmmmm and ccccssssyyyymmmmmmmm
  85.  
  86.      perform one of the matrix-matrix operations
  87.  
  88.           C := alpha*A*B + beta*C, or
  89.           C := alpha*B*A + beta*C,
  90.  
  91.      where alpha and beta are scalars, A is a symmetric matrix and B and C are
  92.      m by n matrices.
  93.  
  94.  
  95. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  96.      ssssiiiiddddeeee    On entry, ssssiiiiddddeeee specifies whether op( A ) multiplies B from the
  97.              left or right as follows:
  98.  
  99.  
  100.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  101.                   side = 'L' or 'l'   B := alpha*op( A )*B.
  102.                   side = 'R' or 'r'   B := alpha*B*op( A ).
  103.  
  104.                   CCCC
  105.                   side = LeftSide     B := alpha*op( A )*B.
  106.                   side = RightSide    B := alpha*B*op( A ).
  107.  
  108.              Unchanged on exit.
  109.  
  110.      uuuupppplllloooo    On entry, uuuupppplllloooo specifies whether the matrix A is an upper or
  111.              lower triangular matrix as follows:
  112.  
  113.  
  114.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  115.                   uplo = 'U' or 'u'   A is an upper triangular matrix.
  116.                   uplo = 'L' or 'l'   A is a lower triangular matrix.
  117.  
  118.                   CCCC
  119.                   uplo = UpperTriangle     A is an upper triangular matrix.
  120.                   uplo = LowerTriangle     A is a lower triangular matrix.
  121.  
  122.              Unchanged on exit.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____SSSSYYYYMMMMMMMM((((3333FFFF))))                                                            ____SSSSYYYYMMMMMMMM((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      mmmm       On entry, mmmm specifies the number of rows of the matrix C. mmmm must
  141.              be at least zero.
  142.              Unchanged on exit.
  143.  
  144.      nnnn       On entry, nnnn specifies the number of columns of the matrix C. nnnn
  145.              must be at least zero.
  146.              Unchanged on exit.
  147.  
  148.      aaaallllpppphhhhaaaa   On entry, aaaallllpppphhhhaaaa specifies the scalar alpha. When aaaallllpppphhhhaaaa is zero
  149.              then aaaa is not referenced and bbbb need not be set before entry.
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ____SSSSYYYYMMMMMMMM((((3333FFFF))))                                                            ____SSSSYYYYMMMMMMMM((((3333FFFF))))
  203.  
  204.  
  205.  
  206.              Unchanged on exit.
  207.  
  208.      aaaa       An array containing the matrix A.
  209.  
  210.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  211.              Array of dimension (lda, ka).
  212.  
  213.              CCCC
  214.              A pointer to an array of size lda*ka.
  215.              See note below about array storage convention for C.
  216.  
  217.              kkkkaaaa is mmmm when side = 'L' or 'l' or LeftSide and is nnnn otherwise.
  218.  
  219.              Before entry  with ssssiiiiddddeeee ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr LLLLeeeeffffttttSSSSiiiiddddeeee, the array
  220.              elements corresponding to the m by m part of the matrix A must
  221.              contain the symmetric matrix, such that when:
  222.              uuuupppplllloooo ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr UUUUppppppppeeeerrrrTTTTrrrriiiiaaaannnngggglllleeee, the array elements that
  223.              correspond to the leading m by m upper triangular part of the
  224.              matrix A must contain the upper triangular part of the symmetric
  225.              matrix and the corresponding strictly lower triangular part of A
  226.              is not referenced,
  227.              and when uuuupppplllloooo ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr LLLLoooowwwweeeerrrrTTTTrrrriiiiaaaannnngggglllleeee, the array elements
  228.              that correspond to the leading m by m lower triangular part of
  229.              the matrix A must contain the lower triangular part of the
  230.              symmetric matrix and the corresponding strictly upper triangular
  231.              part of A is not referenced.
  232.  
  233.              Before entry  with ssssiiiiddddeeee ==== ''''RRRR'''' oooorrrr ''''rrrr'''' oooorrrr RRRRiiiigggghhhhttttSSSSiiiiddddeeee, the array
  234.              elements corresponding to the n by n  part of the matrix A must
  235.              contain the symmetric matrix, such that when:
  236.              uuuupppplllloooo ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr UUUUppppppppeeeerrrrTTTTrrrriiiiaaaannnngggglllleeee, the array elements that
  237.              correspond to the leading n by n upper triangular part of the
  238.              matrix A must contain the upper triangular part of the symmetric
  239.              matrix and the corresponding strictly lower triangular part of A
  240.              is not referenced,
  241.              and when uuuupppplllloooo ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr LLLLoooowwwweeeerrrrTTTTrrrriiiiaaaannnngggglllleeee, the array elements
  242.              that correspond to the leading n by n lower triangular part of
  243.              the matrix A must contain the lower triangular part of the
  244.              symmetric matrix and the corresponding strictly upper triangular
  245.              part of A is not referenced.
  246.  
  247.              Unchanged on exit.
  248.  
  249.      llllddddaaaa     On entry, llllddddaaaa specifies the first dimension of aaaa as declared in
  250.              the calling (sub) program. When side = 'L' or 'l' or LeftSide,
  251.              then llllddddaaaa must be at least max( 1, m ), otherwise llllddddaaaa must be at
  252.              least max( 1, n ).
  253.              Unchanged on exit.
  254.  
  255.      bbbb       An array containing the matrix B.
  256.  
  257.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ____SSSSYYYYMMMMMMMM((((3333FFFF))))                                                            ____SSSSYYYYMMMMMMMM((((3333FFFF))))
  269.  
  270.  
  271.  
  272.              An array of dimension ( ldb, n ).
  273.  
  274.              CCCC
  275.              A pointer to an array of size ldb*n.
  276.              See note below about array storage convention for C.
  277.  
  278.              Before entry, the array elements corresponding to the leading m
  279.              by n part of the matrix B must contain the matrix B.
  280.              Unchanged on exit.
  281.  
  282.      llllddddbbbb     On entry, llllddddbbbb specifies the first dimension of bbbb as declared in
  283.              the calling (sub)program. llllddddbbbb must be at least max( 1, m ).
  284.              Unchanged on exit.
  285.  
  286.      bbbbeeeettttaaaa    On entry, bbbbeeeettttaaaa specifies the scalar beta.  When bbbbeeeettttaaaa is supplied
  287.              as zero then cccc need not be set on input.
  288.              Unchanged on exit.
  289.  
  290.      cccc       An array containing the matrix C.
  291.  
  292.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  293.              An array of dimension ( ldc, n ).
  294.  
  295.              CCCC
  296.              A pointer to an array of size ldc*n.
  297.              See note below about array storage convention for C.
  298.  
  299.              Before entry, the elements corresponding to the leading m by n
  300.              part of the matrix C must contain the matrix C, except when beta
  301.              is zero, in which case cccc need not be set on entry.
  302.              On exit, the array cccc is overwritten by the m by n updated matrix
  303.  
  304.      llllddddcccc     On entry, llllddddcccc specifies the first dimension of cccc as declared in
  305.              the calling (sub) program. llllddddcccc must be at least max( 1, m ).
  306.              Unchanged on exit.
  307.  
  308.  
  309. CCCC AAAARRRRRRRRAAAAYYYY SSSSTTTTOOOORRRRAAAAGGGGEEEE CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNN
  310.        The matrices  are assumed  to be stored in a  oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
  311.        in an analogous fashion as a Fortran array (column major). Therefore,
  312.        the element  A(i+1,j)  of matrix A  is stored  immediately  after the
  313.        element  A(i,j), while  A(i,j+1) is lda  elements apart from  A(i,j).
  314.        The element A(i,j) of the matrix can be accessed directly by reference
  315.        to  a[ (j-1)*lda + (i-1) ].
  316.  
  317.  
  318. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  319.           Jack Dongarra, Argonne National Laboratory.
  320.           Iain Duff, AERE Harwell.
  321.           Jeremy Du Croz, Numerical Algorithms Group Ltd.
  322.           Sven Hammarling, Numerical Algorithms Group Ltd.
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. ____SSSSYYYYMMMMMMMM((((3333FFFF))))                                                            ____SSSSYYYYMMMMMMMM((((3333FFFF))))
  335.  
  336.  
  337.  
  338. TTTTUUUUNNNNIIIINNNNGGGG
  339.           Optimized and parallelized for SGI R3000, R4x00 and R8000 platforms.
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.